// 柯里化
const _ = require('lodash')

// function checkAge(age){
//     let min = 18
//     return age> min
// }

// function checkAge (age,min){
//     return age>min
// }

// function checkAge (min){
//     return function(age){
//         return age>min
//     }
// }

// es6
// let checkAge = min => (age => age > min)
// let age18=checkAge(18)
// console.log(age18(20))

// function match(str,reg){
//     return str.match(reg)
// }
const match=curry((reg,str) => str.match(reg))
const haveSpace=match(/\s+/g)
const haveNum = match(/\d+/g)
console.log(haveSpace('hello dcc'))
console.log(haveNum('222dcc'))

// const filter = _.curry((fn,array) => array.filter(fn))
// const findSpace = filter(haveSpace)
// console.log(findSpace(['33  55','5555']))

// 实现curry函数
function curry(fn){
    return function curried(...args){
        if(args.length<fn.length){
            return function(){
                return curried(...args.concat(Array.from(arguments)))
            }
        }
        return fn(...args)
    }
}